package com.ea.service;

import com.ea.domain.dto.LoginCreateDTO;
import com.ea.domain.dto.LoginDTO;
import com.ea.domain.dto.LoginUpdateDTO;
import com.ea.domain.dto.UserCreateDTO;
import com.ea.domain.dto.UserInfoDTO;
import com.ea.domain.dto.UserUpdateDTO;
import com.ea.domain.entity.UserInfo;

import java.util.Map;

/**
 * <p>
 * 用户信息表 服务类
 * </p>
 *
 * @author 电器商城
 * @since 2022-11-29
 */
public interface IUserInfoService {

    /**
     * 用户登录
     * @param loginDTO LoginDTO
     * @return UserInfo
     */
    UserInfoDTO loginIn(LoginDTO loginDTO);

    /**
     * 用户登出
     * @param userId 用户id
     */
    void userLoginOut(Long userId);

    /**
     * 创建用户
     *
     * @param createDTO createDTO
     */
    void userRegister(UserCreateDTO createDTO);

    /**
     * 注销用户
     * @param userId 用户id
     */
    void writeOffUser(Long userId);

    /**
     * 修改用户个人信息
     * @param updateDTO updateDTO
     */
    void updateUserInfo(UserUpdateDTO updateDTO);

    /**
     * 获取用户个人信息
     * @return userId 用户id
     */
    UserInfo getUserInfo(Long userId);

    /**
     * 修改密码
     * @param oldPassword 旧密码
     * @param newPassword 新密码
     */
    void changePassword(Long userId , String oldPassword, String newPassword);

}
